package com.ark.cloud.dataservices.modules.sys.dao;

import com.ark.cloud.dataservices.modules.sys.entity.po.Module;
import com.ark.cloud.dataservices.modules.sys.entity.po.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Set;


@Repository
@Mapper
public interface UserMapper extends BaseMapper<User> {

    /**
     * 向 用户 - 席位 关联表中添加数据
     *
     * @param userId 用户 id
     * @param seatId 席位 id
     * @return 添加条数
     */
    int insertToUSR(@Param("userId") String userId, @Param("seatId") String seatId);

    /**
     * 根据用户 id 删除 用户 - 席位关联表 中的数据
     *
     * @param id 用户 id
     * @return 删除条数
     */
    int deleteUSRByUserId(String id);

    /**
     * 根据用户名获取其可访问的模块
     *
     * @param username 用户名
     * @return {@link Module}
     */
    Set<Module> getModulesByUsername(String username);

    /**
     * 根据用户名获取席位 ip 集合
     *
     * @param username 用户名
     * @return 席位 ip 集合
     */
    Set<String> getSeatIpsByUsername(String username);
}